#!/bin/bash
# ThingsBoard PostgreSQL备份/恢复配置文件

#---------- 基本配置 ----------#
# 备份基础目录
BACKUP_BASE_DIR="/backup/thingsboard-postgresql"


# PostgreSQL数据目录 (Docker映射的宿主机目录)
POSTGRES_DATA_DIR="/home/docker/postgresql/data"

# ThingsBoard配置目录
TB_CONFIG_DIR="/etc/thingsboard"

# ThingsBoard数据目录
TB_DATA_DIR="/usr/share/thingsboard"

# ThingBelt静态资源目录
THINGBELT_STATIC_DIR="/opt/thingbelt"

# Nginx静态文件目录
NGINX_DATA_DIR="/home/docker/nginx"

# 日志目录
LOG_DIR="/var/log/tb-backup"

# 临时恢复目录
RECOVERY_TEMP_DIR="/tmp/tb_recovery"

#---------- 保留策略 ----------#
# 保留全量备份的数量
FULL_BACKUP_RETENTION=4

# 保留增量备份的数量
DIFF_BACKUP_RETENTION=7

# 保留ThingsBoard配置和数据备份的天数
TB_BACKUP_RETENTION=10

# 保留WAL文件的天数
WAL_RETENTION_DAYS=7

#---------- MinIO对象存储配置 ----------#
# MinIO服务器地址和端口
# 备份服务器使用服务名，还原服务器使用IP地址
# 注意: 在备份服务器上使用 MINIO_HOST="minio"
# 在还原服务器上使用 MINIO_HOST="<备份服务器IP>"
MINIO_HOST="minio"  # 备份服务器上使用此配置
#MINIO_HOST="192.168.x.x"  # 还原服务器上使用此配置(替换为备份服务器的实际IP)
MINIO_PORT="9000"
MINIO_CONSOLE_PORT="9001"

# MinIO用户凭据
MINIO_USER="thingsboard"
MINIO_PASSWORD="thingbelt2024"

# MinIO存储桶配置
MINIO_BUCKET="thingsboard-backups"
MINIO_FULL_PREFIX="full"  # 全量备份路径前缀
MINIO_DIFF_PREFIX="diff"  # 增量备份路径前缀

#---------- 环境配置 ----------#
# 是否使用Docker部署PostgreSQL (true=使用Docker容器, false=使用本地安装)
USE_DOCKER=true
SERVICE_MODE=true

# 是否直接在主机上运行WAL-G进行恢复 (简化版脚本默认启用直接恢复模式)
USE_DIRECT_RESTORE=true

# PostgreSQL容器名称 (仅在USE_DOCKER=true时使用)
POSTGRES_CONTAINER_NAME="postgres"

# Nginx容器名称 (仅在USE_DOCKER=true时使用)
NGINX_CONTAINER_NAME="nginx"

# ThingsBoard部署方式说明:
# ThingsBoard使用系统服务方式部署，不使用Docker容器
# 此脚本不会管理ThingsBoard的Docker容器

#---------- 数据库配置 ----------#
# ThingsBoard数据库名称
THINGSBOARD_DATABASE_NAME="thingsboard"

# PostgreSQL超级用户名
POSTGRES_SUPERUSER="postgres"

# PostgreSQL超级用户密码
POSTGRES_PASSWORD="thingbelt2024"

#---------- 通知配置 ----------#
# 是否启用通知
ENABLE_NOTIFICATIONS=false

# 通知邮箱
NOTIFICATION_EMAIL="admin@example.com"

#---------- 备份压缩配置 ----------#
# 压缩级别 (1-9, 1为最快但压缩率最低，9为最慢但压缩率最高)
COMPRESSION_LEVEL=6

# 调试模式
# 设置为true启用更详细的日志
DEBUG_MODE=false
